home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 015a / umbdr516.zip / UMB_DRVR.DOC next >
Text File  |  1991-12-30  |  59KB  |  1,210 lines

  1. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 1
  2.  
  3.  
  4.                       UMB_DRVR.SYS Device Driver
  5.            UMB provider for DOS 5.0 on 286 / 386 / 486 systems
  6.                  Copyright (C) 1991 All Rights Reserved
  7.  
  8.      Christopher Blum          CompuServe: 76625,1041
  9.      1022 East Wayne Avenue      INTERNET: 76625.1041@compuserve.com
  10.      Wooster, Ohio 44691              BIX: cblum
  11.      (216)262-3786
  12.  
  13.  
  14. IMPORTANT INFORMATION - DISTRIBUTION AND LICENSING
  15.  
  16.  
  17.      UMB_DRVR.SYS carries no warranties expressed or implied.  It is
  18. solely up to the user to determine its suitability for use on his/her
  19. machine.
  20.      This program is distributed as a self-extracting file containing
  21. the device driver and its associated documentation. Copying and
  22. redistribution is encouraged, but must be the original, unmodified
  23. file containing this documentation, and the transfer must not carry
  24. any fee or charge specific to this program: i.e. general BBS access
  25. or line charges are OK, but no 'download fee' or similar charge. This
  26. means that BBS operators may post this file for download, but may not
  27. charge a specific fee for it, and 'Distribution houses' may charge a
  28. disk-duplication fee, but not a specific charge for the program.
  29.      UMB_DRVR.SYS is made available on a 'try before you buy' basis.
  30. It is not crippled in any way, and has no 'advertising'. The latest
  31. version will be available on CompuServe in the IBM forum ( 'GO IBMSYS',
  32. lib 1 ).
  33.      Personal use license ( U.S. funds ) is $25 which should be mailed
  34. to the above address if the program is used after a reasonable trial
  35. period ( 30 days ). Please use the registration form at the end of this
  36. document. Users who register receive the latest version of the program.
  37.      Corporate users must contact me for corporate rate or site license
  38. arrangements.
  39.  
  40.  
  41. TECHNICAL SUPPORT
  42.  
  43.  
  44.      Technical support, including pre-registration questions or install
  45. assistance, is available at your expense at the above telephone number.
  46. Please be aware that I am in the Eastern US time zone ( GMT-4 or GMT-5
  47. depending on season ) and try to call at a reasonable hour: i.e. 9 AM to
  48. Noon, 1 PM to 5PM, or 7 PM to 10 PM. Saturday is OK, but avoid Sundays,
  49. please. I can also be contacted via Email on CompuServe, BIX and
  50. INTERNET ( IDs above ) - I monitor my mail almost every day. It is not
  51. necessarily a good idea to leave me messages on CompuServe in the forum
  52. sections unless your question or discussion is of general interest. The
  53. Postal Service may also be used ( address above ).
  54. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 2
  55.  
  56.  
  57. INTRODUCTION
  58.  
  59.  
  60.      To start with, some definitions are in order. Hex addresses are
  61. given in full hex notation as opposed to Intel segment:offset form,
  62. i.e. A0000 in full hex is the same as A000:0 in seg:off form. The
  63. memory sizes are referred to in Kilobytes ( 1,024 decimal ), Megabytes
  64. ( 1,048,576 decimal ), and Gigabytes ( 1,073,741,824 decimal ).
  65.  
  66. BASE MEMORY - Ram available to DOS and programs from location 0 to
  67.   640K-1 ( 9FFFF hex ). All programs have access to this area.
  68.  
  69. UPPER MEMORY - The area between 640K ( A0000 ) and 1M-1 ( FFFFF ). This
  70.   is the area where roms on expansion cards reside ( usually ), where
  71.   the EMS base area ( the 'window' into EMS memory ) is ( usually ), and
  72.   where Upper Memory Blocks ( UMBs ) are created for loading device
  73.   drivers, programs, etc. 'high' with the DOS 5 'DEVICEHIGH' and
  74.   'LOADHIGH' commands. DOS does not create UMBs itself, but rather
  75.   relies on a program called a 'UMB provider' to supply them. DOS then
  76.   manages the upper memory area as an extention of base memory with
  77.   special characteristics when you use the 'DOS=xxxx,UMB' command.
  78.   Programs like UMB_DRVR, QEMM, 386^MAX, and others are UMB providers.
  79.  
  80. HIGH MEMORY AREA ( HMA ) - The HMA is memory from 1M ( 100000 ) to
  81.   1M+64K-16 ( 10FFF0 ), i.e. the first 64K-16 bytes of extended memory.
  82.   It can be accessed on 286 and up cpus in real mode because the address
  83.   calculation logic does not wrap to location 0 from FFFFF, allowing a
  84.   program to use the segment 'FFFF' to access memory up to 10FFF0. On
  85.   the earlier 8088 and 8086 processors, the wrap to location 0 was used
  86.   by some software. To maintain compatibility, system designers have
  87.   included a way to make the newer cpus act like the older ones. It is
  88.   a 'gate' that can allow the cpu's address line 20 ( A20 ) to be held
  89.   to 0 ( emulating the behavior of the older cpus ), or to be passed
  90.   through. With DOS 5, use of the HMA must be through a program which
  91.   controls access to it by opening this gate for times the HMA must be
  92.   accessed and closing it so that other programs cannot accidently get
  93.   at the HMA. The DOS 5 program which performs this function is the
  94.   device driver 'HIMEM.SYS'. Other programs such as QEMM, 386^MAX et.al.
  95.   also provide this function. The HMA is managed as a total unit, i.e.
  96.   only one program 'owns' it, and 'owns' it all. This is where most of
  97.   DOS is placed when you use HIMEM.SYS and the 'DOS=HIGH' command. As
  98.   stated before, when DOS is loaded 'high', no other program can use
  99.   this portion of memory. The definition of this area and its use is
  100.   standardized in the Extended Memory Specification ( XMS ) issued by
  101.   Microsoft / Lotus / Intel / AST Research, although there is question
  102.   as to where the credit for the 'discovery' of the area and its first
  103.   useage in real mode should go.
  104. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 3
  105.  
  106.  
  107. INTRODUCTION continued
  108.  
  109.  
  110. EXTENDED MEMORY - Memory starting at 1M ( 100000 ) that is accessible by
  111.   the cpu in protected mode. On a 286, this range extends up to 16M-1
  112.   ( FFFFFF ), and on 386 and above cpus up to 4G-1 ( FFFFFFFF ). Under
  113.   DOS, this memory is accessed in several ways:
  114.  
  115.      1. BIOS INT 15H functions - This method is the oldest and least
  116.           standardized, but requires no special drivers. Programs
  117.           directly access the BIOS functions to utilize the memory, and
  118.           must take great pains to avoid 'stepping on' other users -
  119.           many different methods of 'marking' used memory exist, even
  120.           not marking at all.
  121.  
  122.      2. DOS EXTENDERS - These facilities are supplied by several vendors
  123.           including Phar-Lap and others. They are included within a
  124.           program and allow that program access to extended memory using
  125.           the extender's own techniques ( usually in protected mode ).
  126.  
  127.      3. XMS functions - This method is defined in the XMS standard that
  128.           was mentioned earlier. It offers a way for many different
  129.           programs to concurrently use extended memory easily without
  130.           worrying about the underlying memory management problems.
  131.           This method is the one used by all of the DOS 5 utilities that
  132.           use extended memory to provide their services. A device driver
  133.           is required to provide the XMS services. The DOS 5 driver is
  134.           'HIMEM.SYS'. QEMM and other programs also provide XMS access.
  135.           Most XMS servers including HIMEM.SYS will allow some portion
  136.           of extended memory to be left outside their control so that
  137.           programs using the BIOS INT 15H method can still work. Note
  138.           that DOS 5 *requires* XMS services to access the HMA to load
  139.           the major part of itself 'high'.
  140.  
  141. EXPANDED MEMORY - This is memory that conforms to the Expanded Memory
  142.   Specification put out by Lotus / Intel / Microsoft. It is sometimes
  143.   referred to as EMS, LIM 3.2, or LIM 4.0 memory. This type of memory
  144.   is not directly addressable by the cpu, but requires use of additional
  145.   facilities to be accessed. This memory is available via multiple 16K
  146.   'pages' in a ( usually ) 64K 'window' called the EMS base page area
  147.   within the 'Upper Memory Area', starting somewhere between C0000 and
  148.   E0000 on a 16K boundary. The cpu can access this 'window' in real mode
  149.   and uses the support facilities to map different 'pages' into the
  150.   'window'. Although the cpu can only access EMS memory totalling the
  151.   window size at any one time, it can 'move' the window to access all of
  152.   the expanded memory available.
  153. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 4
  154.  
  155.  
  156.  
  157. INTRODUCTION continued
  158.  
  159.  
  160.  
  161.   Expanded ( EMS ) memory can be implemented in several ways:
  162.  
  163.     1. HARDWARE - Hardware support outside the cpu ( usually within the
  164.          support chip set on the motherboard, or on an expansion slot
  165.          card ) handles the mapping of the memory, controlled by a
  166.          software driver which merely flips hardware 'switches', and the
  167.          system runs under DOS in real mode with very little EMS
  168.          management cpu overhead.
  169.  
  170.     2. SIMULATED - This approach uses extended memory to simulate
  171.          expanded memory by moving 16K pages back and forth between
  172.          extended memory and the window ( usually *below* 640K, which
  173.          reduces the base memory area by the window size ). Although it
  174.          has the disadvantages of ( usually ) reducing base memory and
  175.          increasing the EMS management cpu overhead, it runs in real
  176.          mode on any 286 or higher processor without requiring anything
  177.          more than a software driver. This is the only software option
  178.          available for many 286 systems. An example of this type of
  179.          driver is XMA2EMS, distributed with some versions of DOS.
  180.  
  181.     3. EMULATED - This technique is a sort of cross between 1 and 2. It
  182.          uses the paging hardware built into 386 and newer processors
  183.          in conjunction with virtual-86 mode to do the mapping tasks
  184.          required to provide EMS memory. It is similar to 1 in that the
  185.          mapping is really done by the hardware, and to 2 in that it
  186.          also involves non-trivial software to provide the virtual-86
  187.          mode environment necessary for it to work. Its advantages are
  188.          that it works on any 386 or newer cpu without any other special
  189.          hardware and does not reduce the base memory like 2, but it
  190.          also has the drawback of restrictions, additional overhead and
  191.          complexity introduced by virtual-86 mode. There are several
  192.          packages that support this type of EMS, including EMM386.EXE
  193.          supplied with DOS 5, and programs like QEMM, 386^MAX, NETROOM,
  194.          and Memory Commander. Additionally, these EMS emulators can
  195.          provide the Upper Memory Area using the same techniques, and
  196.          generally are a good 'bang for the buck' in providing enhanced
  197.          system functionality for a relatively modest impact on system
  198.          processor overhead if you have the proper cpu.
  199. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 5
  200.  
  201.  
  202. INTRODUCTION continued
  203.  
  204.  
  205.      UMB_DRVR.SYS is a DOS 5.0 device driver that will use the 'shadow
  206. ram' capability of the memory controller portion of many chip sets to:
  207.      A) force all roms not specifically excluded to be shadowed, and
  208.      B) expand DOS base memory beyond 640KB if possible, and
  209.      C) provide UMBs ( Upper Memory Blocks ) to DOS for loading
  210.         programs and device drivers into upper memory
  211. while NOT using ANY resident memory below 640K.
  212.      One advantage of this driver is that many if not all other device
  213. drivers and TSR programs may be loaded 'high' including HIMEM.SYS and
  214. EMM386.EXE ( even though the DOS documentation says not! ).
  215.      A second advantage of using UMB_DRVR is that some device drivers
  216. that cannot be loaded high when a software EMS emulator is providing the
  217. Upper Memory Area because of their use of DMA I/O ( this includes some
  218. CD-ROM drivers, for example ) will work with UMB_DRVR.SYS. This has to
  219. do with the characteristics of virtual-86 mode, 386+ memory management
  220. facilities, and DMA hardware interactions. See MISCELLANEOUS NOTES - DMA
  221. ACCESS TO UPPER MEMORY for more information and possible restrictions.
  222.      In addition, remaining in real mode allows programs that must be
  223. able to use protected or virtual-86 mode themselves, such as Borland's
  224. Turbo Debugger ( TD386.EXE / TDH386.SYS ), to operate as intended ( and
  225. yes, TDH386.SYS can be loaded high with no problems ).
  226.      With respect to performance of UMB_DRVR.SYS versus the software EMS
  227. emulator EMM386.EXE supplied with DOS 5, here are some benchmark results
  228. supplied by a ( happy ) user:
  229.  
  230. " System: 386SX 20Mhz, VLSI TOPCAT chip set, 4MB ram, no math processor.
  231.   DOS version: MS/DOS 5.0    UMB_DRVR.SYS version: 5.09
  232.   Benchmark: CHECKIT 3.0 main system benchmark.
  233.  
  234.   CONFIG.SYS                           Dhrystones Whetstones
  235.   ------------------------------------ ---------- ----------
  236.   None                                    3767       76.7K
  237.  
  238.  
  239.   DEVICE=C:\UMB_DRVR.SYS  /C=13           4042       77.1K
  240.   DEVICEHIGH=C:\DOS\HIMEM.SYS
  241.   DEVICEHIGH=C:\DOS\ANSI.SYS
  242.  
  243.  
  244.   DEVICE=C:\DOS\HIMEM.SYS                 3683       45.7K
  245.   DEVICE=C:\DOS\EMM386.SYS NOEMS
  246.   DEVICEHIGH=C:\DOS\ANSI.SYS
  247.  
  248.  
  249.   As you can see, there is a significant difference when using UMB_DRVR,
  250.   not to mention the extra memory saved below 640k.  The benchmarks ran
  251.   faster with UMB_DRVR than they did with no CONFIG.SYS at all. "
  252. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 6
  253.  
  254.  
  255.  
  256. INTRODUCTION continued
  257.  
  258.  
  259.  
  260.      The driver must be installed *BEFORE* HIMEM.SYS is installed. It is
  261. an XMS 2.0 server providing UMBs to DOS via that standard. The chip
  262. set parameter is processed and the proper routine called to remap the
  263. unused shadow ram to DOS-useable memory. Available memory starting at
  264. A0000 is used to expand DOS base memory beyond 640K, and other available
  265. memory ( i.e. above the video memory ) is used for UMBs ( the areas
  266. DOS uses for DEVICEHIGH or LOADHIGH commands ).
  267.      The driver by default will not use any areas used for video memory.
  268. It also forces all roms including the system BIOS ( F0000-FFFFF ) to be
  269. shadowed unless forced to be excluded ( refer to MISCELLANEOUS NOTES for
  270. considerations concerning disk controllers and network cards ). If the
  271. BIOS has a 'boot page' at F0000-F7FFF that the driver can recognize
  272. ( containing system/CMOS setup code - AMI is one brand that has this ),
  273. that area will be mapped in as available upper memory since it is not
  274. needed after boot time.
  275.      The driver should be loaded as the first driver if possible. This
  276. allows following drivers and resident programs to be loaded high - even
  277. HIMEM.SYS and EMM386.SYS ( DOS documentation says they can't, but it
  278. works; see MISCELLANEOUS NOTES - WINDOWS and EMS DRIVERS, however ). It
  279. will initialize, supply UMBs, and terminate leaving a small stub above
  280. 640K. To ensure proper chip set function, all warm boots ( CTL+ALT+DEL )
  281. will be forced to be cold boots after UMB_DRVR is installed.
  282.      Appropriate status and error messages are issued during processing
  283. and a map of the driver's action is displayed.
  284.      One of my systems is a 386SX with the Chips and Technologies NEATsx
  285. chip set and an AMI ( American Megatrends ) BIOS dated 04/09/90. It has
  286. 4MB of ram and a Hercules Monochrome Graphics card. I configure 2MB of
  287. EMS memory with a base address of C0000-CFFFF using the NEATsx hardware
  288. and their supplied software driver. I load DOS high using HIMEM.SYS, and
  289. load Borland's Turbo Debugger device driver TDH386.SYS for 386 virtual
  290. debugging ( TD386.EXE ) and the ANSI.SYS console driver. Using UMB_DRVR
  291. defaults and loading all drivers high gives me 704K base memory for DOS,
  292. a maximum executable program size of 689K and 160K in one UMB located at
  293. D0000-F7FFF with almost 136K still free in that upper memory block for
  294. any other drivers or TSRs I may want to load.  The following information
  295. is extracted from that system ( Note: 1K = 1024 decimal ).
  296.  
  297.  
  298.      UMB_DRVR.SYS initializes showing:
  299.  
  300.  
  301. Chip-controlled ram at: AAAABBBBCCCCDDDDEEEEFFFF ([D]OS base memory,
  302.                         048C048C048C048C048C048C  [e]ms base page area,
  303. has been configured as: DDDDvvvveeeeUUUUUUUUUUss  [s]hadowed rom,
  304. DOS base memory expansion = 64K                   [U]pper memory area,
  305. Upper memory block ( UMB ) area = 160K            [v]ideo, [-]excluded)
  306. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 7
  307.  
  308.  
  309.  
  310. INTRODUCTION continued
  311.  
  312.  
  313.  
  314.      The command 'MEM /C' displays the following:
  315.  
  316.  
  317. Conventional Memory :
  318.  
  319.   Name                Size in Decimal       Size in Hex
  320. -------------      ---------------------   -------------
  321.   MSDOS              12304      ( 12.0K)       3010
  322.   COMMAND             2624      (  2.6K)        A40
  323.   FREE                  64      (  0.1K)         40
  324.   FREE              705744      (689.2K)      AC4D0
  325.  
  326. Total  FREE :       705808      (689.3K)
  327.  
  328. Upper Memory :
  329.  
  330.   Name                Size in Decimal       Size in Hex
  331. -------------      ---------------------   -------------
  332.   SYSTEM            131152      (128.1K)      20050
  333.   HIMEM               1184      (  1.2K)        4A0
  334.   EMM_NEAT           11264      ( 11.0K)       2C00
  335.   ANSI                4192      (  4.1K)       1060
  336.   TDH386              7920      (  7.7K)       1EF0
  337.   FREE              139088      (135.8K)      21F50
  338.  
  339. Total  FREE :       139088      (135.8K)
  340.  
  341. Total bytes available to programs (Conventional+Upper) : 844896 (825.1K)
  342. Largest executable program size :                        705568 (689.0K)
  343. Largest available upper memory block :                   139088 (135.8K)
  344.  
  345.    2097152 bytes total EMS memory
  346.    2097152 bytes free EMS memory
  347.  
  348.    1048576 bytes total contiguous extended memory
  349.          0 bytes available contiguous extended memory
  350.     983040 bytes available XMS memory
  351.            MS-DOS resident in High Memory Area
  352.  
  353.  
  354.      *NOTE* - If the video card were a CGA and no EMS active, the upper
  355. memory ( UMB ) area would be 224K(!) with 178.8K(!) still available, the
  356. DOS base memory expansion would be 96K(!) with executable program size a
  357. whopping 721K(!) and extended memory would be 3145728 bytes with 3080192
  358. bytes of available XMS memory... a pretty good cure for 'ram cram'!
  359. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 8
  360.  
  361.  
  362. MISCELLANEOUS NOTES
  363.  
  364.  
  365. BOOT PAGE
  366.  
  367.      If UMB_DRVR.SYS uses the 'boot page' area ( see INTRODUCTION for
  368. definition ) by default and your system crashes, you need to use the /M=
  369. parameter to force it to be part of the BIOS ( use '##' or '--' ). If no
  370. 'boot page' is recognized, you may still try the /M= parameter ( with
  371. '++' for F0000-F7FFF ) if you are brave enough. Heed the warning about
  372. having a bootable diskette, however - you may need it.
  373.  
  374.  
  375. EMS DRIVERS ( EMM386, QEMM, 386^MAX, NETROOM, MEMORY COMMANDER, ETC )
  376.  
  377.      If you run EMS, it is most efficient in terms of contiguous memory
  378. to have your EMS base address immediately following your video ram and
  379. any adjacent rom ( e.g. C0000-CFFFF for CGA or monochrome, C8000-D7FFF
  380. for VGA ) or at the top of the useable area ( e.g. E8000-F7FFF with a
  381. 'boot page', E0000-EFFFF without ).
  382.      It is also more efficient in terms of cpu usage overhead to use the
  383. hardware EMS driver for your chip set or your EMS memory card instead of
  384. a software emulation; see INTRODUCTION ( virtual-86 mode, benchmark ).
  385.      If you use an EMS driver ( hardware or software emulation ), you
  386. should use the /M= parameter to force UMB_DRVR to exclude the EMS base
  387. area. Make sure you *DO NOT* have your driver try to map in the upper
  388. memory ( 640K - 1M ) area ( other than the EMS base area ) - UMB_DRVR
  389. has done that already ( refer to your driver's documentation ). You
  390. should be able to use DEVICEHIGH/LOADHIGH to put your driver into upper
  391. memory in most cases.
  392.      Specific to EMM386.EXE, you should use the I= parameter to allow it
  393. to use the EMS base area, which *MUST* be above where EMM386 is loaded
  394. ( i.e. if you load it high, the base area must be above the UMB area ).
  395. Although you can't specify a frame= parameter of E800, using I=E800-F7FF
  396. will allow EMM386.EXE to set the frame there. DO *NOT* USE THE 'RAM' OR
  397. 'NOEMS' PARAMETERS! In addition, there have been reports of problems
  398. with EMM386.EXE, Windows 3.0 and UMB_DRVR all together, resulting in
  399. unexpected system reboots. EMM386 even without the 'ram' and 'noems'
  400. parameters still tries to control some of upper memory, and when certain
  401. ( as yet undetermined ) situations occur, things can become 'unstable'.
  402.  
  403.  
  404. ROMS THAT CANNOT BE SHADOWED ( DISK CONTROLLERS, NETWORK CARDS )
  405.  
  406.      Some roms cannot be shadowed by normal means because they have some
  407. ram or a memory-mapped I/O port they must use included in their address
  408. space ( e.g. some RLL, ESDI and SCSI disk controllers, and also some
  409. network cards ) and shadowing is done using protected ram. These roms
  410. will sometimes work when shadowed by this driver if they are within a
  411. protection block also containing UMBs. Try letting UMB_DRVR shadow the
  412. rom and see if it works. If your system hangs up or you have problems
  413. with disk or network access with the rom shadowed, you must use the /M=
  414. parameter to exclude it from UMB_DRVR.SYS control. Refer to CHIP-SET-
  415. SPECIFIC NOTES for any special considerations.
  416. UMB_DRVR.DOC       Version 5.16             12/30/91             Page 9
  417.  
  418.  
  419. MISCELLANEOUS NOTES continued
  420.  
  421.  
  422. DMA ACCESS TO UPPER MEMORY
  423.  
  424.      DMA ( Direct Memory Access ) is a method of data transfer between
  425. main memory ( ram ) and I/O devices without requiring cpu intervention.
  426. Standard AT-compatible floppy disk controllers use it, as do some other
  427. devices, such as CD-ROMs and data acquisition hardware. It is supported
  428. through the Intel 8237A DMA controller chip, or by compatible integrated
  429. devices like the 82C206, or even by compatible components within the
  430. motherboard chip set. These devices control the data / address busses in
  431. the system to do the transfer while the cpu does other work. They do not
  432. have access to the internal 386+ cpu memory management facilities during
  433. their operation, and so are unaware of remapping of memory done there.
  434. Most of the time this is not a concern, as software that handles the
  435. remapping also handles DMA setup by intercepting accesses to the DMA
  436. controller registers and trying to keep things straight for DMA I/O.
  437. This can become a concern if the DMA transfer spans a page boundary that
  438. in virtual memory is to an adjacent page, but in real memory is not.
  439. Most of the 386-type mappers either automatically or through parameters
  440. try to avoid this situation by causing the area to be mapped ( as much
  441. as possible ) into contiguous memory.
  442.      UMB_DRVR, on the other hand, uses hardware external to the cpu that
  443. maps in the upper memory area contiguously such that DMA access to the
  444. upper memory area is no different than to the base 640K. The DMA mapping
  445. requirememts that the device drivers are aware of for a 'standard AT'
  446. system do not change when UMB_DRVR provides the upper memory area. Note
  447. that some drivers still cannot load high because they are 'confused' by
  448. being at a higher address in memory than the program that is using them,
  449. but this is becoming much less common as drivers are rewritten to be
  450. able to take advantage of the DOS 5 high memory capabilities.
  451.      One consideration remains, however: a *VERY* few chip sets that are
  452. supported by UMB_DRVR are designed such that the ram that is mapped into
  453. the upper memory area can only be accessed by the cpu. UMB_DRVR performs
  454. a test for proper DMA function at initialization and issues a warning
  455. message if DMA is not possible to the upper memory area. If ( and *ONLY*
  456. if ) this is the case, any DMA accesses attempted to an area above 640K
  457. and below 1M will not work, and the following restrictions will apply:
  458.      (1) If you boot from a floppy disk or try to load any driver or
  459.          TSR high reading it from a floppy, do not load UMB_DRVR.SYS -
  460.          if you do, your system will probably hang up immediately upon
  461.          trying to load anything into upper memory.
  462.      (2) Almost no hard disk controllers use DMA, but if you have one
  463.          that does, you will probably have problems with loading any
  464.          driver or TSR into upper memory, and you may not be able to
  465.          use UMB_DRVR at all.
  466.      (3) Device drivers that use DMA for access to buffers within the
  467.          driver itself, or allocated immediately after the driver when
  468.          it initializes, cannot be loaded high on your system.
  469.      (4) No DOS base memory expansion from unused video memory should
  470.          be used ( all DOS base ram should be capable of DMA access ).
  471.      Note that these restrictions apply *ONLY* if DMA access to upper
  472. memory is *NOT* available, i.e. if UMB_DRVR issues the warning message.
  473. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 10
  474.  
  475.  
  476. MISCELLANEOUS NOTES continued
  477.  
  478.  
  479. MICROSOFT WINDOWS
  480.  
  481.      Windows 3.0 has been tested as follows:
  482.  
  483. 386 enhanced mode:
  484.      Windows 3.0 will *NOT* initialize in 386 enhanced mode with UMBs
  485. provided by UMB_DRVR.SYS - use another driver ( e.g. EMM386.EXE, QEMM,
  486. 386^MAX, Memory Commander, etc. ) to provide UMBs to run this way.
  487.  
  488. Standard mode:
  489.      Windows 3.0 standard mode works with UMBs provided by UMB_DRVR.SYS
  490. and HIMEM.SYS and an EMS driver ( hardware or software ) loaded high or
  491. low. Note you must have something like 512K or more extended memory to
  492. run standard mode - i.e. do not have a software EMS driver remap ALL
  493. extended memory to expanded.
  494.  
  495. Real mode:
  496.      Windows 3.0 runs in real mode with UMBs provided by UMB_DRVR.SYS,
  497. HIMEM.SYS loaded high, and EMM386.EXE loaded LOW, giving 'large frame
  498. EMS'. You can remap all extended memory to expanded in this setup.
  499.  
  500.  
  501. PROGRAM ACCESS TO UPPER MEMORY WITH DOS 5 MANAGING UMBS
  502.  
  503. 1. Record current status of memory system so you can restore it.
  504. int 21H/ax=5800h - returns al=strategy ( see below )
  505. int 21h/ax=5802h - returns al=UMB link state ( see below )
  506.  
  507. 2. Set up for memory allocation / deallocation.
  508. int 21h/ax=5801h/bh=0/bl=strategy    int 21h/ax=5803h/bh=0/bl=UMB status
  509.   00h - first fit, low memory          00h = remove UMBs from mem chain
  510.   01h - best   "    "    "             01h = add UMBs to mem chain
  511.   02h - last   "    "    "           ( UMBs must be chained for access )
  512.   40h - first fit, high memory
  513.   41h - best   "    "     "
  514.   42h - last   "    "     "
  515.   80h - first fit, try high then low memory
  516.   81h - best   "    "   "    "    "    "
  517.   82h - last   "    "   "    "    "    "
  518.  
  519. 3. Do normal int 21h/ah=48h, int 21h/ah=49h, int 21h/ah=4Ah as desired.
  520.  
  521. 4. Restore values saved in step 1 above.
  522.  
  523.      The system defaults to first-fit-low with UMBs not chained. If you
  524. chain the UMBs, strategies 00/01/02 affect the entire chain. For example
  525. with the UMBs chained and strategy 00, you will get memory from the UMB
  526. area if the request cannot be satisfied from low memory.
  527. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 11
  528.  
  529.  
  530. DETERMINING YOUR CHIP SET
  531.  
  532.      If your system documentation or CMOS setup screen does not tell you
  533. what chip set you have, the best way to find out is to open the cover on
  534. your system and look at the motherboard. *MAKE SURE THE SYSTEM IS OFF
  535. AND UNPLUGGED* when you do this. The chip you will be looking for may
  536. not be one of the larger in size, but it will have many ( usually 80+,
  537. sometimes up to 200 or more ) pins. The number that identifies the key
  538. chip in the set is listed in CHIP-SET-SPECIFIC NOTES for each chip set
  539. supported. If you find a matching number on one of the chips on your
  540. motherboard, use the /C= value shown for that set. If you don't see a
  541. match, refer to the sections BAD NEWS, MAYBE?, and COMING ATTRACTIONS.
  542.      Note that some chips only contain peripheral support and *DO NOT*
  543. indicate what chip set you have. These include 82C206 ( many brands ),
  544. 82C601, 82C710, 82C711 ( Chips and Technologies ), VL82C106, VL82C107,
  545. VL86C050, VL16C45x, VL16C55x ( VLSI Technology ), 82C452 and 85C206
  546. ( Silicon Integrated Systems ).
  547.  
  548.  
  549. CHIP-SET-SPECIFIC NOTES
  550.  
  551.  
  552. *******************************************************
  553. * Chips & Technologies CS8221 NEAT, CS8281 NEATsx,    *
  554. *                   CS8223 LeAPset, CS8283 LeAPset-sx *
  555. * Texas Instruments TACT82S411 Single Chip AT         *
  556. * United Microelectronics (UMC) UM82C210 286/386SX AT *
  557. *******************************************************
  558. /C=01 - Chip ID(s): ( C & T ) 82C212, 82C812, 82C241, 82C841;
  559.                     ( TI ) TACT82S411; ( UMC ) UM82C212
  560.  
  561.      These chip sets allow the 384k of motherboard ram at A0000-FFFFF to
  562. relocate to extended memory at 100000-15FFFF on systems with only 1mb of
  563. ram. If this remapping is enabled when UMB_DRVR.SYS enables this area,
  564. the remapping is removed and the size of your extended memory is reduced
  565. by 384k, i.e. it disappears. Note that this applies only to systems with
  566. *EXACTLY* 1MB of memory.
  567.      These chip sets map in 16k segments, but write protection for the
  568. area C0000-FFFFF is in 64k segments. To allow maximum memory utilization
  569. the driver marks any segment containing UMBs as read/write. If the 64k
  570. segment also contains a rom shadow, it is not protected.
  571.      Although it should not be necessary, if you wish to have a rom be
  572. shadowed and protected, exclude any non-rom areas within the 64k segment
  573. ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
  574.      If you must force a rom to be unshadowed, you need only exclude the
  575. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  576. C8000-CBFFF ).
  577.      UMB_DRVR.SYS will recognize the EMS setup for these chip sets and
  578. will exclude the EMS base segment if the EMS hardware is enabled when
  579. UMB_DRVR initializes. Use of the /M= parm is not required in this case.
  580. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 12
  581.  
  582.  
  583.  
  584. CHIP-SET-SPECIFIC NOTES continued
  585.  
  586.  
  587.  
  588. ****************************
  589. * VLSI Technology VL82C200 *
  590. ****************************
  591. /C=02 - Chip ID(s): VL82C201, VL82C202, VL82C203, VL82C204
  592.                     ( all 4 chips required )
  593.  
  594.      This chip set uses a jumper or switch to enable shadow ram ability.
  595. This does not actually cause shadowing, but must be in proper position
  596. for UMB_DRVR.SYS to work. Check your system documentation.
  597.      This chip set maps and protects in 64k segments. To allow maximum
  598. memory utilization, 64k segments containing UMBs are set to read/write.
  599. If the 64k segment also contains a rom shadow, it is not protected.
  600.      Although it should not be necessary, if you wish to have a rom be
  601. shadowed and protected, exclude any non-rom areas within the 64k segment
  602. ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
  603.      If you must force a rom to be unshadowed, exclude the entire 64k
  604. segment on a 64k boundary ( e.g. for a disk rom at C8000-CBFFF, exclude
  605. C0000-CFFFF ).
  606.  
  607.  
  608.  
  609. *******************
  610. * FOREX FRX36C300 *
  611. *******************
  612. /C=03 - Chip ID(s): FRX36C300
  613.  
  614.      This chip set maps in 32k segments from C0000 to EFFFF, and one 64k
  615. segment for the system BIOS ( F0000-FFFFF ).  Ram at A0000-BFFFF is
  616. always remapped to the highest area and cannot be used by the driver.
  617. Protection is set globally, meaning that all used ram ( shadow or UMBs )
  618. is marked read/write.
  619.      The chip set also remaps D0000-EFFFF to the highest area if there
  620. is nothing shadowed in that area. When UMB_DRVR.SYS enables this area,
  621. the remapping is removed and the size of your extended memory is reduced
  622. by 128k.
  623.      If you must force a rom to be unshadowed, exclude the entire 32k
  624. segment on a 32k boundary ( e.g. for a disk rom at C8000-CBFFF, exclude
  625. C8000-CFFFF ).
  626. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 13
  627.  
  628.  
  629.  
  630. CHIP-SET-SPECIFIC NOTES continued
  631.  
  632.  
  633.  
  634. *******************************************************************
  635. * Chips & Technologies CS8230 386/AT, CS8231 Turbo Cache 386/AT,  *
  636. *                      CS8233 PEAKset/386, CS82310 PEAKset DM/386 *
  637. *******************************************************************
  638. /C=04 - Chip ID(s): 82C302, 82C307, 82C311, 82C351
  639.  
  640.      These chip sets maps in 16k segments, but write protection for the
  641. area C0000-FFFFF is in 64k segments. To allow maximum memory utilization
  642. the driver marks any segment containing UMBs as read/write. If the 64k
  643. segment also contains a rom shadow, it is not protected.
  644.      Although it should not be necessary, if you wish to have a rom be
  645. shadowed and protected, exclude any non-rom areas within the 64k segment
  646. ( e.g. for a VGA rom at C0000-C7FFF, exclude C8000-CFFFF ).
  647.      If you must force a rom to be unshadowed, you need only exclude the
  648. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  649. C8000-CBFFF ).
  650.  
  651.  
  652.  
  653. ******************************************************************
  654. * Chips & Technologies 82C235 SCAT, 82C836 SCATsx, CB8291 ELEAT, *
  655. *                      CB8295 ELEATsx, CS8285 PEAKset-sx,        *
  656. *                      CS8227 CHIPSlite, CS8288 CHIPSlite-sx     *
  657. ******************************************************************
  658. /C=05 - Chip ID(s): 82C235, 82C836
  659.  
  660.      These chip sets allow the 384k of motherboard ram at A0000-FFFFF to
  661. relocate to extended memory at 100000-15FFFF on systems with only 1mb of
  662. ram. If this remapping is enabled when UMB_DRVR.SYS enables this area,
  663. the remapping is removed and the size of your extended memory is reduced
  664. by 384k, i.e. it disappears. Note that this applies only to systems with
  665. *EXACTLY* 1MB of memory.
  666.      These chip sets map in 16k segments, but write protection for the
  667. area C0000-FFFFF is in 32k segments. To allow maximum memory utilization
  668. the driver marks any segment containing UMBs as read/write. If the 32k
  669. segment also contains a rom shadow, it is not protected.
  670.      Although it should not be necessary, if you wish to have a rom be
  671. shadowed and protected, exclude any non-rom areas within the 32k segment
  672. ( e.g. for a rom at C8000-CBFFF, exclude CC000-CFFFF ).
  673.      If you must force a rom to be unshadowed, you need only exclude the
  674. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  675. C8000-CBFFF ).
  676. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 14
  677.  
  678.  
  679. CHIP-SET-SPECIFIC NOTES continued
  680.  
  681.  
  682. ************************
  683. * ETEQ Micro COUGAR II *
  684. ************************
  685. /C=06 - Chip ID(s): 82C491 ( same ID but different chips for 386, 486 )
  686.  
  687.      This chip set maps in 16k segments from C0000 to EFFFF, and one 64k
  688. segment for the system BIOS ( F0000-FFFFF ). Memory protection is done
  689. in 64k segments from C0000 to EFFFF. The hardware does not allow read /
  690. write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
  691. protected, but the driver cannot use the boot page. The driver also
  692. cannot use the ram at A0000-BFFFF.
  693.      The chip set can remap A0000-BFFFF and D0000-EFFFF to the highest
  694. area if no shadowing is done in that area. If this remapping is enabled
  695. and UMB_DRVR.SYS enables the area D0000-EFFFF, the remapping is removed
  696. and the size of your extended memory is reduced by 256k.
  697.      Although it should not be necessary, if you wish to have a rom be
  698. shadowed and protected, exclude non-rom areas within the 64k segment:
  699.  e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
  700. you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
  701.      If you must force a rom to be unshadowed, you need only exclude the
  702. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  703. C8000-CBFFF ).
  704.  
  705.  
  706. ***************************
  707. * OPTi Sx/AT, Sx/AT Cache *
  708. ***************************
  709. /C=07 - Chip ID(s): 82C281, 82C282, 82C283
  710.  
  711.      These chip sets maps in 16k segments from C0000 to EFFFF, and one
  712. 64k segment for the system BIOS ( F0000-FFFFF ). Memory protection is
  713. in 64k segments from C0000 to EFFFF. The hardware does not allow read /
  714. write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
  715. protected, but the driver cannot use the boot page. The driver also
  716. cannot use the ram at A0000-BFFFF.
  717.      These chip sets can remap A0000-BFFFF and D0000-EFFFF to the high
  718. end of extended memory if no shadowing is done in either area. If this
  719. remapping is enabled and UMB_DRVR.SYS enables the area D0000-EFFFF, the
  720. remapping is removed and the size of your extended memory is reduced by
  721. 256k.
  722.      Although it should not be necessary, if you wish to have a rom be
  723. shadowed and protected, exclude non-rom areas within the 64k segment:
  724.  e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
  725. you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
  726.      If you must force a rom to be unshadowed, you need only exclude the
  727. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  728. C8000-CBFFF ).
  729. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 15
  730.  
  731.  
  732. CHIP-SET-SPECIFIC NOTES continued
  733.  
  734.  
  735. ********************
  736. * OPTi DX/BB PC/AT *
  737. ********************
  738. /C=08 - Chip ID(s): 82C496
  739.  
  740.      This chip set maps in 16k segments from C0000 to EFFFF, and one 64k
  741. segment for the system BIOS ( F0000-FFFFF ). Memory protection is done
  742. in 64k segments from C0000 to EFFFF. The hardware does not allow read /
  743. write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
  744. protected, but the driver cannot use the boot page. The driver also
  745. cannot use the ram at A0000-BFFFF.
  746.      The chip set can remap A0000-BFFFF and D0000-EFFFF to the highest
  747. area if no shadowing is done in that area. If this remapping is enabled
  748. and UMB_DRVR.SYS enables the area D0000-EFFFF, the remapping is removed
  749. and the size of your extended memory is reduced by 256k.
  750.      Although it should not be necessary, if you wish to have a rom be
  751. shadowed and protected, exclude non-rom areas within the 64k segment:
  752.  e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
  753. you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
  754.      If you must force a rom to be unshadowed, you need only exclude the
  755. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  756. C8000-CBFFF ).
  757.  
  758.  
  759. ***********************************
  760. * OPTi 386WB PC/AT, 486SXWB PC/AT *
  761. ***********************************
  762. /C=09 - Chip ID(s): 82C391, 82C493
  763.  
  764.      These chip sets maps in 16k segments from C0000 to EFFFF, and one
  765. 64k segment for the system BIOS ( F0000-FFFFF ). Memory protection is
  766. done in 64k segments from C0000 to EFFFF. The hardware does not allow
  767. read / write access to ram at F0000-FFFFF - i.e. the rom can be shadowed
  768. and protected, but the driver cannot use the boot page. The driver also
  769. cannot use the ram at A0000-BFFFF.
  770.      Although it should not be necessary, if you wish to have a rom be
  771. shadowed and protected, exclude non-rom areas within the 64k segment:
  772.  e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
  773. you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
  774.      If you must force a rom to be unshadowed, you need only exclude the
  775. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  776. C8000-CBFFF ).
  777. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 16
  778.  
  779.  
  780. CHIP-SET-SPECIFIC NOTES continued
  781.  
  782.  
  783. ***********************
  784. * OPTi 386/486WB EISA *
  785. ***********************
  786. /C=10 - Chip ID(s): 82C682
  787.  
  788.      This chip set maps and protects in 16k segments at C0000-DFFFF, one
  789. 64k segment at E0000 and one 64k segment for the system BIOS at F0000.
  790. The the driver cannot use the ram at A0000-BFFFF.
  791.      If one of the 64k segments contains both shadowed rom and UMB area,
  792. it is marked read/write. All shadowed roms in the C0000-DFFFF area are
  793. write-protected.
  794.      If you must force a rom to be unshadowed, you need only exclude the
  795. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  796. C8000-CBFFF ) unless it is in the E0000 block or you wish to force the
  797. BIOS ( F0000-FFFFF) to be unshadowed. Then you must exclude the entire
  798. 64k block ( E0000-EFFFF and/or F0000-FFFFF ).
  799.  
  800.  
  801. ****************************************
  802. * Elite Microelectronics Eagle, Falcon *
  803. ****************************************
  804. /C=11 - Chip ID(s): e88C311, e88C411
  805.  
  806.      These chip sets map and protect in 16k segments for the entire area
  807. C0000-FFFFF. All shadowed roms are write-protected. UMB_DRVR cannot use
  808. the ram at A0000-BFFFF.
  809.      These sets always remap A0000-BFFFF to the highest memory area, and
  810. can selectively remap C0000-FFFFF in 64k blocks if no shadowing is done
  811. within the 64k block. If this remapping is active and UMB_DRVR enables
  812. shadow memory within one of the remapped 64k blocks, the remapping is
  813. removed and the size of your extended memory is reduced.
  814.      If you must force a rom to be unshadowed, you need only exclude the
  815. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  816. C8000-CBFFF ).
  817. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 17
  818.  
  819.  
  820.  
  821. CHIP-SET-SPECIFIC NOTES continued
  822.  
  823.  
  824.  
  825.  
  826. *************************
  827. * VLSI Technology SCAMP *
  828. *************************
  829. /C=12 - Chip ID(s): VL82C310, VL82C311, VL82C311L
  830.  
  831.      These chip sets map and protect in 32k segments for A0000-BFFFF,
  832. 16k segments for C0000-DFFFF, and 32k segments for E0000-FFFFF. If a
  833. rom shadow shares a 32k segment from E0000 to FFFFF with a UMB area, it
  834. is marked read/write. Any shadowed rom from C0000-DFFFF is protected, as
  835. is any 32k segment from E0000 to FFFFF that is all shadowed rom.
  836.      These sets can remap A0000-FFFFF to the highest memory area if no
  837. shadowing is done and system memory is 1MB, 2MB, 3MB or 4MB. If remap
  838. is active and UMB_DRVR enables any shadow memory, the remapping is
  839. removed and the size of your extended memory is reduced. Note that this
  840. applies only to systems with *EXACTLY* 1MB, 2MB, 3MB or 4MB installed.
  841.      If you must force a rom to be unshadowed, you need only exclude the
  842. 16k segment(s) it occupies if it is between C0000 and DFFFF ( e.g. for a
  843. disk rom at C8000-CBFFF, exclude C8000-CBFFF ). If it is between E0000
  844. and FFFFF, exclude all areas in the 32k segment ( e.g. for a disk rom at
  845. E0000-E3FFF, exclude E0000-E7FFF ).
  846.  
  847.  
  848. *********************************************
  849. * VLSI Technology VL82C286, VL82C386 TOPCAT * ( These sets are all made
  850. * Intel 82340SX, 82340DX                    *     by VLSI Technology )
  851. *********************************************
  852. /C=13 - Chip ID(s): ( VLSI ) VL82C320, VL82C320A, VL82C330
  853.                     ( Intel ) 82343, 82343A, 82346
  854.  
  855.      These chip sets map in 16k segments for the entire area from A0000
  856. to FFFFF and protect in 16k segments from C0000 to FFFFF. All shadowed
  857. rom areas are protected. The video area ( A0000-BFFFF ) and the 'boot
  858. page' ( F0000-F7FFF ) can only be utilized on the VL82C320 / 82343 'A'
  859. revisions ( this implementation was chosen to avoid the DMA limitation;
  860. see MISCELLANEOUS NOTES - DMA ACCESS TO UPPER MEMORY ). UMB_DRVR will
  861. recognize the various chips and enforce these restrictions accordingly.
  862.      These sets can remap A0000-FFFFF to the high end of extended memory
  863. if no shadowing is done and system memory is exactly 1MB or 2MB. If this
  864. remapping is active and UMB_DRVR enables shadow memory, the remapping is
  865. removed and the size of your extended memory is reduced. Note that this
  866. applies only if the system memory size is *EXACTLY* 1MB or 2MB.
  867.      If you must force a rom to be unshadowed, you need only exclude the
  868. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  869. C8000-CBFFF ).
  870. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 18
  871.  
  872.  
  873. CHIP-SET-SPECIFIC NOTES continued
  874.  
  875.  
  876. *******************************
  877. * OPTi HiD/386 AT, HiB/486 AT *
  878. *******************************
  879. /C=14 - Chip ID(s): 82C382, 82C482
  880.  
  881.      These chip sets map in 16k segments from C0000 to EFFFF and one 64k
  882. segment for the system BIOS ( F0000-FFFFF ). Memory protection is done
  883. in 64k segments from C0000 to EFFFF. The hardware does not allow read /
  884. write access to the area F0000-FFFFF - i.e. the rom can be shadowed and
  885. protected, but the driver cannot use the boot page. The driver also
  886. cannot use the ram at A0000-BFFFF.
  887.      The chip sets can remap A0000-BFFFF and D0000-EFFFF to the highest
  888. area if no shadowing is done in that area. If this remapping is enabled
  889. and UMB_DRVR.SYS enables the area D0000-EFFFF, the remapping is removed
  890. and the size of your extended memory is reduced by 256k.
  891.      Although it should not be necessary, if you wish to have a rom be
  892. shadowed and protected, exclude non-rom areas within the 64k segment:
  893.  e.g. for a rom at C8000-CBFFF, exclude C0000-C7FFF and CC000-CFFFF. If
  894. you have a VGA rom at C0000-C7FFF, you only need exclude CC000-CFFFF.
  895.      If you must force a rom to be unshadowed, you need only exclude the
  896. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  897. C8000-CBFFF ).
  898.  
  899.  
  900. *********************************************
  901. * Sun Electronics SUNTAC ST62CS24, ST62CS25 *
  902. *********************************************
  903. /C=15 - Chip ID(s): ST62C241, ST62C251
  904.  
  905.      These chip sets have two memory-mapping modes: one for extended
  906. memory and one for expanded ( EMS ) memory. You must have your system
  907. configured for extended memory only for UMB_DRVR to recognize the chip
  908. set. See your CMOS setup or system documentation.
  909.      These chip sets map and protect in 16k segments from C0000 to DFFFF
  910. and in 32k segments from E0000 to FFFFF.  The driver cannot use the ram
  911. at A0000-BFFFF. All shadowed roms from C0000 to DFFFF and the system
  912. BIOS are protected.
  913.      The chip sets always remap A0000-DFFFF to the highest area, and
  914. remap E0000-FFFFF there if no shadowing is done. UMB_DRVR must remove
  915. the remapping for E0000-FFFFF if active, and must use some extended
  916. memory to supply the upper memory area. Your extended memory size will
  917. be adjusted accordingly.
  918.      If you must force a rom to be unshadowed, you need only exclude the
  919. 16k segment(s) it occupies ( e.g. for a disk rom at C8000-CBFFF, exclude
  920. C8000-CBFFF ).
  921. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 19
  922.  
  923.  
  924. INSTALLATION
  925.  
  926.      *PLEASE BE SURE YOU HAVE REVIEWED THE MISCELLANEOUS AND CHIP-SET-
  927. SPECIFIC NOTES* prior to installing. Also, make sure you have backed-up
  928. your system and that you have a diskette you can boot from in case you
  929. have problems with your CONFIG.SYS settings.
  930.      Installation ( preferably as the first driver ) is via the lines:
  931.  
  932.          DEVICE=UMB_DRVR.SYS /C=nn [/M=ssssssssssssssssssssssss]
  933.          DOS=[HIGH|LOW],UMB  ( *REQUIRED* - turn on DOS 5 UMB support )
  934.  
  935. in your CONFIG.SYS file. The /C= parameter is required - nn is the chip
  936. set from 'CHIP-SET-SPECIFIC NOTES'. The /M= parameter is optional and is
  937. used to override defaults. It contains characters corresponding to 16K
  938. memory blocks at the following addresses:
  939.  
  940.           /M=ssssssssssssssssssssssss
  941.         A0000'||||||||||||||||||||||`FC000---| Only '..' and '--' may be
  942.          A4000'||||||||||||||||||||`F8000----| used for the system BIOS.
  943.   Video   A8000'||||||||||||||||||`F4000--|
  944.    RAM     AC000'||||||||||||||||`F0000---| '..', '--', '++', and '##'
  945.     area    B0000'||||||||||||||`EC000    | may be used for boot page.
  946.              B4000'||||||||||||`E8000     | Use '##' to force area to be
  947.               B8000'||||||||||`E4000      | shadowed as part of BIOS.
  948.                BC000'||||||||`E0000
  949.                      |||||||`DC000
  950.                      ||||||`D8000     Upper
  951.                      |||||`D4000       Memory
  952.                      ||||`D0000         area
  953.                      |||`CC000
  954.                      ||`C8000
  955.                      |`C4000
  956.                      `C0000
  957.  
  958.            s = '.' Allow default use of block
  959.                '-' Force block to be unused and unshadowed
  960.                '+' Force block usage for UMBs or DOS base ram expansion
  961.  
  962. The /M= parameter must always be supplied as all 24 characters, using
  963. the '.' character to fill any positions not forced on or off. For
  964. example, on a VGA system using video memory from A0000 to BFFFF, if
  965. it is in CGA 80 x 25 mode, the only video memory in use is B8000-BFFFF.
  966. In this case, the memory from A0000-AFFFF may be used to expand DOS
  967. base memory beyond 640K ( with some VGA cards ) by using the parameter:
  968.          /M=++++....................
  969. Of course, with the system configured like this, if you change the video
  970. mode, undefined ( read as disaster city! ) results will occur.
  971.      A second example would be a system where you wish to use EMM386.EXE
  972. to supply EMS memory and wish to use E0000-EFFFF as the EMS base address
  973. range. To accomplish this, use the UMB_DRVR.SYS parameter:
  974.          /M=................----....
  975. to reserve this memory for EMM386.EXE to use. You should also use the
  976. I=E000-EFFF parameter for EMM386.EXE to include the area for its use.
  977. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 20
  978.  
  979.  
  980. ERROR MESSAGES
  981.  
  982.  
  983. DMA NOT SUPPORTED ( WARNING )
  984.  
  985.      See MISCELLANEOUS NOTES - DMA ACCESS TO UPPER MEMORY.
  986.  
  987.  
  988. SHADOW RAM TEST FAILURE
  989.  
  990.      This message is issued when the shadow ram read/write test fails.
  991. It is usually an indication that you are trying to use memory that is
  992. not available, or ( possibly ) you do not have the chip set you have
  993. specified. Check your CMOS setup and any jumpers or switches per your
  994. hardware documentation. Also review CHIP-SET-SPECIFIC NOTES earlier in
  995. this document for any requirements.
  996.      This can also occur if you are trying the example listed in the
  997. INSTALLATION section using a portion of the video ram area on a VGA
  998. system in CGA mode and your VGA hardware will not allow it.
  999.  
  1000.  
  1001. CHIP SET NOT RECOGNIZED
  1002.  
  1003.      As much as possible, UMB_DRVR.SYS tries to verify that you have the
  1004. chip set you indicated in the /C= parameter. If you are sure you have
  1005. the chip set and have correctly specified it, contact me ( see TECHNICAL
  1006. SUPPORT ) and I will try to straighten things out.
  1007.  
  1008.  
  1009. XMS ALREADY INSTALLED
  1010.  
  1011.      You have not installed UMB_DRVR.SYS before HIMEM.SYS ( UMB_DRVR.SYS
  1012. issues message ), or you have omitted or incorrectly specified the line
  1013. 'DOS=xxxx,UMB' in your CONFIG.SYS ( HIMEM.SYS issues message ). Correct
  1014. your CONFIG.SYS file and and reboot.
  1015.  
  1016.  
  1017. INCORRECT DOS VERSION
  1018.  
  1019.      UMB_DRVR.SYS requires MS/DOS 5.0 for proper operation.
  1020.  
  1021.  
  1022. INVALID PARAMETER(S)
  1023.  
  1024.      On the DEVICE= statement for UMB_DRVR.SYS you have: 1) omitted or
  1025. incorrectly specified the /C= parameter, 2) incorrectly specified the
  1026. /M= parameter, or 3) included extra parameter(s).
  1027.      Check that you have entered the proper 2-digit number for your chip
  1028. set, that ( if specified ) the /M= parameter contains 24 characters from
  1029. the set '.' (period), '-' (minus), '+' (plus) and '#' (pound sign), and
  1030. that nothing else is specified. Correct your CONFIG.SYS file and reboot.
  1031. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 21
  1032.  
  1033.  
  1034. BAD NEWS ( CHIPS THAT WILL NOT BE SUPPORTED )
  1035.  
  1036.      Chips & Technologies: CS8220(82C201/82C202) [1]
  1037.      Intel: 82335/82335SX [2]
  1038.      Sun Electronics ( SUNTAC ): ST62CS02(ST62BC002) [1]
  1039.      United Microelectronics ( UMC ): UM82C230(UM82C231) [1]
  1040.      VLSI Technology: VL82C100 [1]
  1041.      Western Digital: ( Faraday ) FE3021/FE3021A [2]
  1042.  
  1043.      Notes:
  1044.           [1] - No shadow ram support
  1045.           [2] - Lock feature prohibits access
  1046.  
  1047.  
  1048. MAYBE? ( NEED TECHNICAL DATA TO SUPPORT )
  1049.  
  1050.      ACER
  1051.      American Megatrends (AMI) - Megatrends custom chips, *NOT* BIOS
  1052.      COMPAQ
  1053.      IBM PS/2
  1054.      Micronics
  1055.  
  1056.      I have been unable to get any documentation for these systems. If
  1057.      you can have your system vendor or the chip set manufacturer
  1058.      contact me, I will try to include support for them.
  1059.  
  1060.  
  1061. COMING ATTRACTIONS ( SUPPORT PLANNED OR UNDER DEVELOPMENT )
  1062.  
  1063.      ACC Microelectronics: 2036 [2], 2046
  1064.      Headland Technology: HT12/HT15 [1], HT18/HT21/HT22 [2], HT322
  1065.      Intel: 82350 EISA(82359), 80386SL(Intel386SL)
  1066.      OPTi: L1/L2 Notebook
  1067.      Silicon Integrated Systems ( SIS ): 85C310, 85C401
  1068.      Texas Instruments: TACT83000(TACT83442), TACT84500 EISA(TACT84542)
  1069.      United Microelectronics ( UMC ): UM82C380(UM82C384) [1]
  1070.      VLSI Technology: VL82C486
  1071.      Western Digital: WD6000/WD75C10/WD76C10/WD7710/WD7910 [1]
  1072.      ZyMos Corporation: POACH(82C230/82C231)
  1073.  
  1074.      Notes:
  1075.           [1] - Support minimal ( maximum 64K UMB area ).
  1076.           [2] - Support limited ( maximum 128K UMB area ).
  1077.  
  1078.      If your chip set is not listed, have your system vendor or the chip
  1079.      set manufacturer contact me and I will try to support it.
  1080. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 22
  1081.  
  1082.  
  1083. COMING ATTRACTIONS ( SUPPORT PLANNED OR UNDER DEVELOPMENT ) continued
  1084.  
  1085.      I am writing a general EMS simulator which will load high with
  1086. UMB_DRVR and will use XMS ( HIMEM.SYS ) memory to supply EMS memory on
  1087. *ALL* systems supported by UMB_DRVR ( 286 / 386 / 486 ). If I am able to
  1088. work it out, it will be able to be turned on and off, only using the XMS
  1089. memory when EMS is required. This will be included in the UMBDVR.EXE
  1090. package at no additional charge.
  1091.  
  1092.      Also in the works are features to save even more precious memory
  1093. below 640K by:
  1094.  
  1095.      - loading the primary shell ( COMMAND.COM ) into upper memory
  1096.      - relocating all DOS areas possible to upper memory, including
  1097.          FCBS=, FILES=, BUFFERS=, STACKS=, and LASTDRIVE=
  1098.      - allowing the lower portion of the video ram area to be switched
  1099.          in and out to expand DOS base ram beyond 640K but not inhibit
  1100.          graphics modes ( only for chip sets with video area support )
  1101.  
  1102.      If there is enough interest, I will also write device-specific EMS
  1103. drivers for the hardware facilities in the EMS-capable chip sets. Please
  1104. Email or surface mail your thoughts ( no phone calls on this, please -
  1105. save those for support questions ).
  1106. UMB_DRVR.DOC       Version 5.16             12/30/91            Page 23
  1107.  
  1108.  
  1109. REVISION HISTORY
  1110.  
  1111.  
  1112.      5.16 [12/30/91] - Fix for warm boot failure with another BIOS type;
  1113.                        Internal code restucturing in preparation for
  1114.                          future enhancements;
  1115.                        Introduction amplified to include tutorial on
  1116.                          different types of extended / expanded / upper
  1117.                          memory management.
  1118.  
  1119.      5.15 [12/24/91] - Added Sun Electronics SUNTAC ST62CS24, ST62CS25;
  1120.                        Fixes for parity errors during DMA test and warm
  1121.                          boot failures with some BIOS implementations.
  1122.      5.14 [11/27/91] - Relaxed all chip-set-verification checks to avoid
  1123.                          problems accepting some BIOS setups as valid.
  1124.      5.13 [11/23/91] - Added Texas Instruments TACT82S411, UMC UM82C210;
  1125.                        Added DMA verification code and warning message;
  1126.                        Documentation expanded and reorganized (again!).
  1127.      5.12 [11/19/91] - Fix for OPTi HiD/386, HiB/486 memory remapping.
  1128.      5.11 [11/17/91] - Fixes for OPTi Sx/AT, Sx/AT Cache, DX/BB PC/AT;
  1129.                        Relaxed validation check for Chips & Technologies
  1130.                          CS8230, CS8231, CS8233, and CS82310;
  1131.                        Documentation updated for various chip set IDs
  1132.                          from Chips and Technologies.
  1133.      5.10 [11/12/91] - Added Chips & Technologies PEAK/DM,
  1134.                          OPTi Sx/AT Cache, HiD/386 AT, HiB/486 AT;
  1135.                        Fixes for VLSI Technology TOPCAT / Intel 82340,
  1136.                          special conditions remapping extended memory
  1137.                          on Chips & Technologies NEAT, LeAPset and SCAT,
  1138.                          miscellaneous logic improvements;
  1139.                        Documentation updated and reorganized.
  1140.      5.09 [10/25/91] - Fix for VLSI Technology TOPCAT / Intel 82340.
  1141.      5.08 [10/14/91] - Fix for boot page special condition.
  1142.      5.07 [10/13/91] - Added VLSI Technology SCAMP,TOPCAT / Intel 82340.
  1143.      5.06 [10/12/91] - Added Elite Microelectronics Eagle, Falcon.
  1144.      5.05 [10/09/91] - Added OPTi Sx/AT, DX/BB PC/AT, 386WB PC/AT,
  1145.                          486SXWB PC/AT, 386/486WB EISA.
  1146.      5.04 [10/02/91] - Added ETEQ Micro COUGAR II.
  1147.      5.03 [09/21/91] - Added Chips & Technologies 386/AT,
  1148.                          386/AT Cache, PEAK, SCAT, ELEAT;
  1149.                        Removed setup requirements.
  1150.      5.02 [09/12/91] - Added FOREX FRX32C300;
  1151.                        Added support for use of 'boot page' area;
  1152.                        Fix for VLSI Technology VL82C200;
  1153.                        Default all roms shadowed.
  1154.      5.01 [09/04/91] - Added VLSI Technology VL82C200.
  1155.      5.00 [09/01/91] - Support for Chips & Technologies NEAT, LeAPset;
  1156.                        Original release version.
  1157.  
  1158.                    ***** END OF DOCUMENTATION *****
  1159.        UMB_DRVR.SYS, Version 5.16 [ 12/30/91 ] Registration Form
  1160.                 ***** Please Type or Print Clearly *****
  1161.  
  1162.  
  1163.         Name:____________________________________________________
  1164.  
  1165.         Address:_________________________________________________
  1166.  
  1167.                 _________________________________________________
  1168.  
  1169.         City/State_______________________________________________
  1170.  
  1171.         Zip/Postal Code__________________________________________
  1172.  
  1173.  
  1174.  
  1175.   ***** Telephone number_________________________________________
  1176.   *   *
  1177.   *   * Email system / routing / ID______________________________
  1178.   *   *
  1179.   *   *      ____________________________________________________
  1180.   *   *
  1181.   * O * Computer description, configuration, chip set, etc.
  1182.   *   *
  1183.   * P *      ____________________________________________________
  1184.   *   *
  1185.   * T *      ____________________________________________________
  1186.   *   *
  1187.   * I *      ____________________________________________________
  1188.   *   *
  1189.   * O * Comments_________________________________________________
  1190.   *   *
  1191.   * N *      ____________________________________________________
  1192.   *   *
  1193.   * A *      ____________________________________________________
  1194.   *   *
  1195.   * L *      ____________________________________________________
  1196.   *   *
  1197.   *   *      ____________________________________________________
  1198.   *   *
  1199.   *   *      ____________________________________________________
  1200.   *   *
  1201.   *****      ____________________________________________________
  1202.  
  1203.  
  1204.  
  1205.         Cost ( U.S.Funds ): $25 ( no credit cards )
  1206.  
  1207.         Mail to: Christopher Blum
  1208.                  1022 East Wayne Avenue
  1209.                  Wooster, Ohio 44691
  1210.